package com.yayan.beautyclub.dao;

import java.util.List;
import java.util.Map;

import com.yayan.beautyclub.bean.Product;

/**
 * 
 * @author 刘超  2017/7/12
 *
 */
public interface IProductDao {
	/**
	 * 根据产品ID获取产品信息
	 * @param pId 产品Id
	 * @return 产品信息
	 * @throws Exception
	 */
	Map<String, Object> findProductBypId(long pId) throws Exception;
	
	/**
	 * 根据条件分页获取产品信息
	 * @param page
	 * @param size
	 * @param firstcId
	 * @param secondcId
	 * @param searchKey
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> findProductByCondition(int page, int size, int firstcId, int secondcId, String searchKey) throws Exception;
	
	/**
	 * 根据类别ID获取产品信息
	 * @param cId 类别Id
	 * @param page 开始获取的页数
	 * @param size 需要获取的数量
	 * @return 类别为cId的所有产品信息
	 * @throws Exception
	 */
	List<Product> findProductBycId(int cId, int page, int size) throws Exception;
	
	/**
	 * 根据一级类别ID获取产品信息
	 * @param parentId
	 * @param page
	 * @param size
	 * @return
	 * @throws Exception
	 */
	List<Product> findProductByParentId(int parentId, int page, int size) throws Exception;
	
	/**
	 * 获取特价活动产品信息
	 * @return
	 * @throws Exception
	 */
	List<Product> findProductByActivity() throws Exception;
	
	/***
	 * 保存产品信息，并返回主键Id
	 * @param product 产品信息
	 * @return 主键Id
	 * @throws Exception
	 */
	long save(Product product) throws Exception;
	
	void save(String... values) throws Exception;
	
	/**
	 * 更新产品信息
	 * @param product
	 * @return
	 * @throws Exception
	 */
	boolean update(Product product) throws Exception;
	
	/**
	 * 根据pId删除产品信息
	 * @param pId
	 * @return
	 * @throws Exception
	 */
	boolean delete(long pId) throws Exception;
	
	/**
	 * 根据pId更新产品销量
	 * @param pId
	 * @return
	 * @throws Exception
	 */
	boolean addSales(long pId) throws Exception;

}
